/* 
* sepintgr.h - This file is a part of the sep-library 
*
* Copyright (C) 2008 Jesper Schmidt Hansen 
* 
* License: GPL - see COPYING for copying conditions.
* There is ABSOLUTELY NO WARRANTY, not even for MERCHANTIBILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* Contact: schmidt@zigzak.net
*/


#ifndef __SEPINTGR_H__
#define __SEPINTGR_H__

#include "sepmisc.h"
#include "sepstrct.h"
double sep_periodic(sepatom *atoms, unsigned n, sepsys *sys);
void sep_leapfrog(seppart *ptr, sepsys *sys, sepret *retval);
void sep_nosehoover_type(seppart *ptr, char type, double Td, 
			 double *alpha, const double Q, sepsys sys);
void sep_nosehoover(seppart *ptr, double Td, double *alpha, const double Q, 
		    sepsys sys);
 
// Langevin - Fokker-Planck level
void sep_fp(seppart *ptr, double temp_desired, sepsys *sys, sepret *retval);

void sep_set_shake(sepmol *mols, unsigned nuau, 
		   int nb, double *blength, sepsys sys);

void sep_shake(sepatom *atoms, sepmol *mols, sepsys *sys, 
	       double tol, sepret *retval);

void sep_set_leapfrog(sepsys *sys, double dt);
#endif
